{
  /*
    学习目标：interface与type的差异
    语法上：
      interface 接口名 {}   花括号前没有等号
      type 类型别名 = {} 
    作用上：
      1. type可以描述各种各样的类型，如：函数、数组、对象、字符串等等
      2. interface只能描述对象结构，它没有等号，只有花括号
      3. interface的优势-继承
  */

  type MyArr = string[];
  type MyFn = () => void;
  type MyStr = string | number;

  interface IPerson {
    name: string;
    age: number;
    // 类似对象类型，?表示可选
    sayHello?: () => void;
  }

  const zs: IPerson = {
    name: '张三',
    // 不写hobby与sayHello等方法也不会报错
    age: 18,
    // sayHello() {
    //   console.log('hello');
    // },
  };
}
